package com.caregiver.watch.business.data.dao;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.caregiver.watch.business.data.model.po.HealthBloodPressureHeartRate;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;

import static com.caregiver.watch.common.constant.DataSourceName.SHARDING;

/**
 * 心率同步数据访问接口
 */
@Mapper
@DS(SHARDING)
public interface HealthBloodPressureHeartRateDao {
    
    /**
     * 插入心率同步数据
     * @param record 心率同步数据实体
     * @return 插入记录数
     */
    int insert(HealthBloodPressureHeartRate record);
    
    /**
     * 根据主键查询心率同步数据
     * @param id 主键
     * @return 心率同步数据实体
     */
    HealthBloodPressureHeartRate selectByPrimaryKey(Long id);
    
    /**
     * 根据主键更新心率同步数据
     * @param record 心率同步数据实体
     * @return 更新记录数
     */
    int updateByPrimaryKey(HealthBloodPressureHeartRate record);
    
    /**
     * 根据主键删除心率同步数据
     * @param id 主键
     * @return 删除记录数
     */
    int deleteByPrimaryKey(Long id);
    
    /**
     * 根据用户ID和数据采集时间查询心率数据
     * @param userId 用户ID
     * @param recordedAt 数据采集时间
     * @return 心率同步数据列表
     */
    List<HealthBloodPressureHeartRate> selectByUserIdAndTime(@Param("userId") Long userId,
                                                             @Param("recordedAt") LocalDateTime recordedAt);
}
